﻿using System;
using System.Collections.Generic;
using System.Linq;
using Domain;
using Simply.Domain;


namespace Simply.DataTier.Repository.Interface
{
    public interface IProductRepository : IRepository<ProductDO>
    {
        List<ProductDO> GetAllProducts(string productType);
        
        List<ProductDO> GetFilteredProducts(ProductFilter filter);

        IEnumerable<DataTemplateDO> GetAllTemplates(string productType);
        DataTemplateDO GetTemplateById(int id);
        List<DataTemplateDO> GetTemplatesByProductId(long productId);
        int CreateTemplate(DataTemplateDO template);

        long CreatePackage(PackageDO packageDo);
        void UpdatePackageFilePath(long packageId, string path);
        PrintMediaDO GetDefaultPrintMediaByProductId(long productId);
        List<PrintMediaDO> GetMediaListByProductId(long productId);

        

        int GetFilteredProductsCount(ProductFilter filter);
    }
}
